package leetcode.array;

/**
 * @author Cheng Jun
 * Description: 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序。
 * @version 1.0
 * @date 2022/8/5 16:24
 */
public class sortedSquares {

    // 前后双指针
    static int[] sortedSquares(int[] nums) {
        // nums = [-4,-1,0,3,10]
        // [0,1,9,16,100]
        int left = 0;
        int right = nums.length - 1;
        int[] result = new int[nums.length];
        int i = result.length - 1;
        while (left <= right) {
            if (nums[left] + nums[right] > 0) {
                result[i--] = nums[right] * nums[right];
                right--;
            } else {
                result[i--] = nums[left] * nums[left];
                left++;
            }
        }
        return result;
    }
}
